Enterprises face major storage challenges due to the fast growth of their storage needs, the increased complexity of managing the storage, and the requirement for high availability of storage. Storage Area Network (SAN) technologies enable storage systems to be engineered separately from host computers through the pooling of storage, resulting in improved efficiency.
Storage virtualization, a storage management technology which masks the physical storage complexities from the user, may also be used. Block virtualization (sometimes also called block aggregation) provides servers with a logical view of the physical storage, such as disk drives, solid-state disks, and tape drives, on which data is actually stored. The logical view may comprise a number of virtual storage areas into which the available storage space is divided (or aggregated) without regard to the physical layout of the actual storage. The servers no longer see specific physical targets, but instead see logical volumes which can be for their exclusive use. The servers send their data to the virtual storage areas as if they are directly attached thereto.
Virtualization may take place at the level of volumes, individual files or at the level of blocks that represent specific locations within a disk drive. Block aggregation can be performed within hosts (servers), in the storage network (storage routers, storage controllers), and/or in storage devices (intelligent disk arrays).
In data storage systems the problem of data currency is a general issue. It is likely that new data will be accessed regularly within the first few days or weeks of its creation, and that gradually over time the data will be accessed less and less. As an example, imagine a bank where they store data regarding share transactions. It is likely that analysis will be run on the share transactions that have happened within the last few days to spot trends. After a week this data is less important as the market will have moved on. After several weeks this data will be irrelevant. The data itself is stored so that it can be accessed by the servers performing the analysis—generally high powered servers and fast reliable storage, and may be stored as records in a database. Once the data has become less useful, there is no need to store it on the fast (expensive) storage, but it may still need to be accessed occasionally. Therefore, a system administrator will need to manually move the data from the database, either into another database, or onto cheaper storage media. Eventually the data may be moved onto tape storage for long term backup.
A method of hierarchical storage of data in a computer has been proposed in U.S. Pat. No. 6,032,224. The computer includes an interpreter and a hierarchical performance driver which monitors the rates of access of blocks of data stored on the computer's storage devices and transfers blocks of data accessed infrequently from a faster data storage device to a slower data storage device.
As the storage management is done at the host level, there is a problem when two or more different hosts, which may use different operating systems, share the same storage devices. An extra data gathering system would be required to see the access statistics of the complete system and if the hosts use different operating systems this would be have to be compatible with all the different operating systems. Alternatively, one of the hosts could be made the controller, but then this would have to be notified of the activities of all the other hosts, and again the problems of different operating systems would be present. Both of these options lead to the use of extra bandwidth, time and processor capability.
The present invention aims to address these problems.